package co.com.desarrollo.pedidos.dao.impl;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import co.com.desarrollo.pedidos.dao.TiendaDAO;
import co.com.desarrollo.pedidos.entities.Tienda;

@Repository("tiendaDAO")
public class JpaTiendaDAOImpl implements TiendaDAO {

	@PersistenceContext
	private EntityManager entityManager;
	
	@Transactional(readOnly = true)
	public List<Tienda> findAll() {
		return entityManager.createQuery("from Tienda",Tienda.class).getResultList();
	}

	@Transactional(readOnly = true)
	public Tienda findById(long tiendaId) {		
		return entityManager.find(Tienda.class, tiendaId);
	}

	@Transactional
	public Tienda store(Tienda tienda) {
		return entityManager.merge(tienda);
	}

	@Transactional(readOnly = true)
	public Tienda findByName(String nombre) {
		return entityManager.createQuery("from Tienda t where t.nombre = '"+nombre+"'", Tienda.class).getSingleResult();
	}

	@Transactional(readOnly = true)
	public List<Tienda> findTiendasActivas() {
		return entityManager.createQuery("from Tienda t where t.activo = 1", Tienda.class).getResultList();
	}

}
